��������, ����� ��������� ����������� ������� ����������� �������, ����������� �� ����� �����, �� ��������� ���������� �� ������ ����� ����������� ������. � ������ ����� ����� ������ �� ������������� ������� ����������� ������ � ��������� ��� � ������ ����.
������ ����� ����� ��������� �������� ������������ ��������� ������ �������� ������� � ����� ����������� �� �������������� � �������� � ����������.
�� ��� ����, ����� �����-����� ��������� ���������� ��������������� ��������, ���������� ���������� ������ � ��������� ��������� ��������� ���������������� MS DOS.
������ ������, ������� �������� ���- � ���-��������� �� ���- � ���-������. ���� � ���, ��� � ��������� ����� ���������� .��� ��� .��� �������� �� �����, ��� ������ ��������� (������, ��������������) ����������� ���������. ������ �� �������� � ������ � ������� ��������� ������������ ������������ �������� �� �� (���������) ����������� �������. ���� ���� ����� �� ��������� ������ ������ �������, ��� ��������� � ����������� �������� ������ �� ���������.
���-��������� ������������ ����� "�����" ���� � ������, ������������ � ����������� ������� � ���������� �� ����� 64��. ��������, ����� ��������� ����� ��������� ��������� �����ND.��� ������������ ������� MSDOS, ������ �� 6.22 ������������ ( � ������ �� CD "��� ����� #3" �������� MSDOS 6.3 beta :-).
���-��������� ����� ������� ����� ������� ���������.� ������ ����� ���-��������� ������������� ���������, ������ 28 ���� ��������� ���������:
�������� | ������������ | ���������� |
---|---|---|
0 | ����� 4D5A ('MZ') | ������� ���-����� |
2 | PartPag | ����� ����� �� ������ 512 |
4 | PageCnt | ����� ����� � 512-�������� ��������� |
6 | ReloCnt | ������ ����������� ������� |
8 | HdrSize | ������ ��������� � 16-��������� |
10 | MinMem | ������� ��������� ������ |
12 | MaxMem | �������� ��������� ������ |
14 | ReloSS | ������������� ������� ����� |
16 | ExeSP | �������� ��������� ����� |
18 | ChkSum | ����������� ����� ����� |
20 | ExeIP | �������� ����� ����� |
22 | ReloCS | ������������� ������� ����� ����� |
24 | TablOff | �������� ����������� ������� |
26 | Overlay | ����� ����������� �������� |
���� ReloCS � ExeIP ���������� �������������� ����� ����� � ���������, ���� ExeSP � ReloSS - �������������� �����, ���� PartPag � PageCnt - ������ ��������� �������� ���������.
����������� �� PartPag � PageCnt ������ ��������� ����� �� ��������� � �������� �������� �����. ����� ��������� ���������� "�����������������" ��� "����������� ���������� �������". ��������� ������ ������� �������� �������� ����� ���������.
����� ��������� ����� ������������� ����������� �������, ������ �������������� ������� ������������ ����� TablOff, � ������ - ����� ReloCnt. � ���� ������� �������� ������ ��� ���� � ���� ���������, ������� �������������� ������������ �������� �� ����� �������� ���������. ��������, ������������ ���� ��������� ��� ������ ������� HackerView, �� ����� �������: call 0000:1234h; �� ����������, � �������� �������� ��������� MSDOS ��������� ������� 0 ������ ���������� �����, � ��������� ����� ����������� ��������� :-). ������, ���� �������� TablOff ���� ����� 40h ��� �������, ��, ������ �����, ��� ��������� � ������� Windows.
�������� ������ �����, ��������, ��������� ��������� COMMAND.COM �� Windows 95. �������� �� ���� ����������, �� ����� � ������ ���������� ����� 'MZ' � ����� 95 ��.
���������� ������ ������� ��������� ��������. ��� ���������� �� �������� "���������", ���������� �� ����� � �������������� ������� � �������, ����������� �� ������ �������, �� � ������ ������ �� �������������������� ����������� (���).
������ ������, ��������� ���� �������� �������� ��-�������:
�) ����� ������������. ��� ������ ������������� � ����� ����� ���������� ���������, � ��� ��� ���� �������� �������������� ������� ��������������� �������� �� ������� ����� ���������.
�) ����� ����������. ��� ������ ������������� � ������ ���������� ���������, � ���� ����� ��������� ������������� � �����.
�) ����� ����������. �� ������ (��� ��������) ����� "���������" ��������, ������ �� ������ ���� ������, ������������� � �����. ��� ����� ������������ � �������������� �����.
�) ������������� ������ ���������� - ����� ������������ ������ �� ����������� ������. ����� ��������� �������� "������� ��������" � �� ����� ���� ������������� ������� �����������.
�) �� � ������ ��������, ���� ���������� ������������ ��������� ��������� � "���������� ������" ����� � ��.
�. ���������� �������� ��������� ������� � �������� �� "������������":
�) � ������ COM-���������. ���� ������ ������������� � ����� �����, ���-�� ������ ��� ����������� ��������� (������, ���) ������ ������������� ������ ���������, �� �� ����� ������������ ������� �������� �� ������ ������. ����� ����� ����������� ���������� ��������������� �� ��������, �� ��������������� ������������ ����� ������ ��������� (�� ������ CS:100h) � �������� ���� ����������.
�) � ������ EXE-���������. ���� ������ ������������� � ����� �����, � ��������� ��� �������������� �������� �����, ������������ �������������� ����� ����� � ������� ��������� (������ ��� - �������������� �����). � ���������� ���������� �������� �������� ���. �� ��������� ������ �����, ��������� ����������� ��� ��������� �������� ���������� �����, ������������ ������� �� ������������ ������ ���������.
���� ���������� ������ ������� ��� ������������ ���� ������-������ ����������� ��������� ������ � ���������� ��������� ��� �������.
� �������� ������ "�������������� ��������" ������� ������ ��������� � ������ 90-� ����� ����� SVC-1740. ����� ����������� ���������� ����������������:
��� ��� ������� �� ������ ����� ������ ����������:
SVC
������ ������� ������ ������, �������� �� ��������� ���������� � ������ ���������. ��� ��������� ������ �������� COM � EXE. �������� ������ �� ����� �����: "(c) 1990 by SVC,Vers. 4.0". ������������ ����� �������� �����, ����� � ��� 60 ������. ���� ���������� ��������� ��������� DEBUG, ����� �� ����������. ��� ������ ������� ��������� ��������, ����� ������������ � ���������� � ���������� ���������� ����� � �����, ������� ���� ������� � ���.
SVC-1689, -1740
��� ������������� ����� ������, ������������ � ����� ���������, �������, �������, ��� � �� ��� �������.
���������, ��� ��������� ������ ����� SVC �������� � ����� ���������� ���������� ������ �����������, � ������ �� ������� ��������� :-)
������������� ���� �������� ���� ����� �� ����� ������ � ������������ �� ������������.
�) � MSDOS ������ ���������� ����� ARCVIEW.EXE, HIEW.EXE � LEX.EXE. � ���������� HackerView, ������� ��������� ����������� ������ ����, ��������� ��������, �������: HIEW bad, work is aborted.
�) Windows 3.11 � Windows 95 ������� ����������� ���������, �� ����� ������������������ ������������ �������������� ������ � ����������� 800�600�256 (���� �� � ���, ��� ����� ������� �����-������ ��������, � ������ � ������ ������ "��������" � ������ ��������� �������� ���������� Int21h).
��������� ������ ����� ������������� �����������:
DrWeb c: /cup /al
�
AidsTest c: /f /g /q
( ��������� ��������� � '*' ����� �������� - ��������� "�������" :-)
��� ������ ����� ��������� ������� ������� ��� ���������: 5000.COM � 5000.EXE. ���������� �� ����� �� 1740 ���� ������� ������ �� "������" ������ (Stealth-������).
������ ������, ����� �������������� ������ �����. ������ �������� ���� � ���� ����� ��������� DisDoc. �� ��������� �. �����������, �� ������� ���������� ������������� �������������� IDA. ������ ����������� ��� ��������� ��������� ������� HackerView. ����� �������� ������������� ������ ���������.
���������� ��� �������� ���� ���������� �������� ������������ Sourcer v5.04. �������, ������ �������� ��� ���� ����� ����� ������ ���������. ���, ����������� ������������ ������ �������� ������ 1.72. �������� �� ��, ��� ��� �� �������� ������ �������� �����, ������ ��������� ��� ������������������, ���� �������� �� ������� (������ ��������� PkLite) ����� 48�� :-)
����, ��������� ������������ ��������: sr 5000.���. �������� �� ������ �����-����� ������� ���������. ����� ������� 'a', ����� ������� �� ��������� �����. ����� ������������ ���������� ���������� ��������� �����: 'a' - ����������� ����������������� �������� ���������, ��������������� ����� ������ jmp/ret/iret; ��� ��������� �������� ������������ ��� ��� ���������� ��������, � ������� ��� ������ �������� (��������� ��������� ����������, ������� ������������ � ��.). �������� �� ������ ��������, ����� Enter. �������� ������� ������������������ �������� ������� 'g'.
� ����������� �� ������������������ CPU, ������� ����������������� ������ �� ���������� ������ �� ���������� �����. (Sourcer 1.72 �� 286/16 ���, ��������, ����������� ��������� prince.exe �� ������� Prince Of Persia ����� ���� :-) ������, ��� ������ ������ ������� �������� ����� �������: ���� �������� ���� ���� ������-���������� �������� ������.
6740 ���� ���������� ��������� ���� ��� 96 �� ������ + ���� 5000.sdf. ��� ����� ���������� ����, �� ������ � ��������� ���� ��� �����, �������������� ��� ������������������, ��� � ��������� ����������� ������: ���������� ���������� ���� � ������, �������������� ������������� ���� � ��. ���� �������� ��� ��������� �� ���� ����, ������������� ���� � 5000.def � ��������� ��� Sourcer'� � ��������� ������ � �������� ���������, �� ������������ ����� �������� � ������������ � ������ ������������.
����������� �������� ��������� ��� ����� 5000.���.
�������� ����� ���������� - �������� ����������� ��������. ������� (������������) ����� 5000.��� �����������.
������������ ������ ���������� ���������, �� �����:
����...
�) � ������ ��������� ���� ���������� ������������������ ������ ����:
call sub_1 sub_1: pop si sub si,3
�������� ������������������ ���������� ��� ������ ����� ������ �������. ������� call �������� � ���� �������� ������������ �������� ������ cs ��������� �� call �������. ������ ������������ ������� ret, �������� pop si ����� ������ ��������� ��� �������� � �������� ��� � ������� si. �������������� ��� �������� �� ����� ������� call (3 �����), ����� ������ �������� ����������� ����������� ��������� � ������� ������ ������������ �������� �������� �������� ���:
mov cs:Data[si], xxxx.
�� �������� DrWeb ����� ����� ��������� �� �������� ������� � ������ ��������, ������� ��������������� ���������. �������, ��� �� �������� ������������ ��������� ������. ��������, ���������� �������������� ������ �� ��� ���� ����� ���������� ���� �������. :-)
�) ������ ��������� ��������� ������ �������� ���� ����������� ������� ������������ ��������� � ���. ������� ���������� DOS � "���������" �������� 83h, ����� ���� ������� �������. "��������" ������� �� ������ ����������� �� ����������, � "�������" ������� ��������� � ������� dx ����� 1990h (��� �������� ������ ?), ��� � �������� � ������� ������������ ���� ������ � ������.
��������������� �������� ��������� ����������� ���������� Int21h:
cmp ah,83h je loc_9 ... loc_9: mov dx,1990h iret
���� ���� ����� ������������ ���������-��� ��� �������������� ��������� ���� � ����������� ������. �����, ���������- ����������� ����� ����������� ������� ������ � ������, ������������ ��� ��������� � ����������� ����������� ����������.
�) � ������ ���������� ��������� ����������� Int21h � ������ ����� �������� ���������� ���� ���������� � �������� � ������ ����������.
�������� ������������ ���������� ���� ������ � ������ ������� �� ������ ����������� ��������� ����� ������ (MCB).��������� �������� ����� ��������� � ������� ������ � ��������, ������������� �������� ����� �����������, ����� ����� � ����� �� ������� ������� "�������" �� 1993 �.
�) ��������� ���� ����������� ����� � ��� (��� ��������� ������������ ���� ������� ����� �����), ����� ������ �������� ���������� ������������ ���������. �������� ������� ��������� ����������� ����� ��� ���.
� �������� ��������� (���� �������� �� �������� ������) ����� ��������� (� data_15) 24 ����� ������ ��������� � ����������� ����� ������. � ����������� �� ����������� ������� ����� ('MZ' ��� ���), ����� ��������� ��������� ������ ���� �� ���-, ���� �� ���-���������, ���������� �������� ������ �� ����� ����� � �� �����. �����������, ��������� 24 ����� ����� ����������� ������������ � ������.
������� ��� ����������� ������� �������� ���������� ������������� ���� ��������� ������ ���������� �������� �������� ����������� �������� ������ � ��������� 'MZ':
cmp cs:data_15[si],5A4Dh je It_Was_EXE
� ������, ���� ��������� ���� �������� �� ���-���������, ����� ������ ��������� ������ 3 ����� �� ������ ������ �� ������ data_15, �������� �� � ������ ������ ������������� ���� (�� ������ cs:100h) � �������� ���� ����������.
������ data_15 ������������� 80-� (���� ������� � �����) ���� ���������� ���������.
� ������, ���� ��������� ���� �������� �� ���-���������, ����� ��������� ������ ����� ����� �� ����������� � data_20 � data_21 ��������� ����� ReloCS � ExeIP, ��������������� �������������� ����� �� ����������� � data_18 � data_19 ��������� ����� ReloSS � ExeSP � �������� ���������� �� ReloCS+ES+10h:ExeIP. (ES - ������� PSP; ES+10h - ������� ������ ���������; ES+ReloCS+10h - ������ �������� ����� �����).
�������������� ������������� ������� � ���������� ����� (�� ����� �����):
data_20 60 data_21 58 data_18 66 data_19 64
��� ��� ���������� ����������� �������� ����� PartPag � PageCnt (�� ����� �����):
data_16+1 78 data_16+3 76
��� ��������� ����������� ����� ���������� ������������ ���������� �������� �����, ������ ������� �� ������ ��� ��������� � ������ 1740 �������� ������ �� ����� �����. ���� �������� ����� ��������� ����� 3 ������ "��� ������ ���� �� �����".
�������� ����� �����������, � �������� ������ ����� ����������� ��� ������������������ ���� ������ � �������� ��������.
��� ������ ����� ���� ����������. � ���� ������ � ������ ��������� ���� ������ ������������� ������������ ����. (������ ������, �������������� ����� ���� ����� :-(, �� 1-� - ������ ���������� :- ) ���� ������������ �������� �� ������ ����������� ����� � �������, ������, �� ����� ���� � ����������� �������.
��� ������ ���-����� ������ ���������� �������� ������ ������������ � ���������, ��������� ��� ���������� � ��������� �� ��������� �������������� ��� ������ (����������� debug ��� ������ �����, � ������������ td - ��� :-) . ���������� ���� ����� �����������������.
� ������ � ���-������ ����� ����� �� ��������, ��� ��� � ������ ����� �������� ����������� ���������, � ���������� ���� �� ������ ���� ���������������� ������ ��� ���. ��������, �������� ������ ����������� ��������� ����������� �� ������ ���������� �� �������� ��������� �������������.( �� ������� ����, ����� ������ ������ ��� � ��������� :-( ) ���� ���� ����� ������� ������ - ����������!
������ ������ �������������� ������ Search-1000:
8E86:0100 start: 8E86:0100 E9 01C8 jmp loc_4 ......................................................... loc_4: 8E86:02CB E8 0000 call sub_2 sub_2: 8E86:02CE 5B pop bx 8E86:02CF 83 EB 03 sub bx,3 8E86:02D2 B9 03E1 mov cx,3E1h 8E86:02D5 �BE 0000 mov si,data_2e 8E86:02D8 80 70 14 9C xor byte ptr [bx+si+14h],9Ch 8E86:02DC 46 inc si 8E86:02DD E2 F9 loop $-5
����������� ������ - ����� ��������������� ������ ����������� � ���� ������ ����� (�������� ���������� ������ Oops-600):
8E86:0146 8B 84 0353 mov ax,data_12[si] 8E86:014A F7 D0 not ax 8E86:014C A3 0100 mov word ptr ds:[100h],ax 8E86:014F 8B 84 0355 mov ax,data_13[si] 8E86:0153 F7 D8 neg ax 8E86:0155 A3 0102 mov word ptr ds:[102h],ax 8E86:0158 B8 0100 mov ax,100h 8E86:015B 50 push ax 8E86:015C 33 C0 xor ax,ax 8E86:015E 33 F6 xor si,si 8E86:0160 C3 retn
������������ ����� ���� �������� � �������, ������������������� ����������� ���� ������ � �������������� ����������. ������������ � ����� ������� ����� � ����������� ����������, ����������� ������ � ���. ������ �������, ��� �������, ����� ���������� ���-������ ����� � ���������� ������ ��������� ������ (����� Awme, � ��� ����� - Natas):
detect_debug proc near xor ax,ax pushf pop dx and dh,0FEh push dx push dx popf push ss pop ss pushf pop dx test dh,01 pop dx je no_debug xor bp,bp mov cx,ss cli mov ss,bp les di,[bp+4] mov ss,cx sti mov al,0CFh cld stosb push dx popf pop bx jmp debug no_debug: pop bx cmp byte ptr [bx],0cch jne nobreak jmp debug nobreak: push bx ret detect_debug endp
�� ��� ��� ������ ������ ����.
� ������ ����� 2-� �����������:
��������� ����������� ��� � �������� "�������" ��� �������� �������� ��������� �����������. �� ��� ��� ����� � 3-� �����...